layui.define(['element', 'fast_config'], function(exports) {
	"use strict";

	/**
	 * Button component
	 * */
	var MOD_NAME = 'api',
		$ = layui.jquery,
        fast_config = layui.fast_config
    ;

    function getUrl(opt) {
        if(!opt.url.startsWith("http") && fast_config.enableRootApi && opt.enableRootPath){
            if(window.rootApi){
                return window.rootApi+ "/" + opt.url;
            }else{
                return fast_config.api + opt.url;
            }
        }else{
            return opt.url;
        }
    }


	var api = {
        exec : function(opt){


            var defaultOpt = {
                url: "",
                async: false,
                success: function(data){
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    // debugger
                    layer.msg(XMLHttpRequest.responseJSON.msg);
                    // layer.msg(textStatus);
                    // 状态码
                    console.log(XMLHttpRequest.status);
                    // 状态
                    console.log(XMLHttpRequest.readyState);
                    // 错误信息
                    console.log(textStatus);
                }
            };

            if(opt.type == null && opt.method != null){
                opt.type = opt.method;
            }
            opt.url = getUrl(opt);

            $.extend(defaultOpt, opt);
            $.ajax(defaultOpt);
        },
        get : function(opt){
            var defaultOpt = {
                type: "GET",
                url: "",
                async: false,
                success: function(data){
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    // 状态码
                    console.log(XMLHttpRequest.status);
                    // 状态
                    console.log(XMLHttpRequest.readyState);
                    // 错误信息
                    console.log(textStatus);
                }
            };
            opt.url = getUrl(opt);
            
            $.extend(defaultOpt, opt);
            $.ajax(defaultOpt);
        },
        post : function(opt){
            var defaultOpt = {
                type: "POST",
                url: "",
                async: false,
                success: function(data){
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    // 状态码
                    console.log(XMLHttpRequest.status);
                    // 状态
                    console.log(XMLHttpRequest.readyState);
                    // 错误信息
                    console.log(textStatus);
                }
            };
            opt.url = getUrl(opt);

            $.extend(defaultOpt, opt);
            $.ajax(defaultOpt);
        },
        put : function(opt){
            var defaultOpt = {
                type: "PUT",
                url: "",
                async: false,
                success: function(data){
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    // 状态码
                    console.log(XMLHttpRequest.status);
                    // 状态
                    console.log(XMLHttpRequest.readyState);
                    // 错误信息
                    console.log(textStatus);
                }
            };
            opt.url = getUrl(opt);

            $.extend(defaultOpt, opt);
            $.ajax(defaultOpt);
        },
        delete : function(opt){
            var defaultOpt = {
                type: "DELETE",
                url: "",
                async: false,
                success: function(data){
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    // 状态码
                    console.log(XMLHttpRequest.status);
                    // 状态
                    console.log(XMLHttpRequest.readyState);
                    // 错误信息
                    console.log(textStatus);
                }
            };
            opt.url = getUrl(opt);

            $.extend(defaultOpt, opt);
            $.ajax(defaultOpt);
        }
    }



    exports(MOD_NAME, api);
});
